

import static java.lang.Math.pow;



public class Liczba2{
	 int n,p;
     public int tablica[];
     public int j;
     public int dec;//liczba w systemie dziesietnym
     public String result="";//wynik koncowy
    
     Liczba2(int dec){
    	this.dec=dec;
	}
    
    Liczba2(String n,int p)throws LiczbaException{
			dec=0;
            if(n.equals(""))
                throw new LiczbaException ("Blad Argumentu");
        for(int i=0;i<n.length();i++){
            int[] tab2 = new int[n.length()];
            int x= Character.getNumericValue(n.charAt(i));
            
            if(x<0)
                throw new LiczbaException ("\n"+n+" nie jest liczba 			naturalna\n");
            if(x>=p)
            	throw new LiczbaException(p+" nie nalezy do systemu			");
            if((p<2)||(p>16))
                throw new LiczbaException(p+" nie nalezy do przedzialu 			<2,16>");
					
            tab2[n.length()-i-1]=x;
            dec=dec+(tab2[n.length()-i-1]*(int) pow(p,n.length()-i-1));
            this.p=p;
           
		}
	}
  
    String ToSysY(int podstawa){//y docelowa podstawa
 	   int i;
        int p,q;
        int k=0;//zmienne pomocnicze k okresla dlugosc liczby
        tablica= new int[100];
        
        for(i=0;i<=99;i++){
             q = (int)pow(podstawa,i);
             p = dec/q;
             tablica[i]=p%podstawa;
             dec=(int)(dec-((p%podstawa)*(pow(podstawa,i))));
             if(dec==0){
             	k=i;
             	break;
             }
       }    
        for(i=k;i>=0;i--){
             if(tablica[i]<10)
                 result=result+tablica[i];
             else
                 result=result+"("+tablica[i]+")";
         }
         return result;    
    }
    
    
   
   
}

